#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
应用程序框架分析器(App Framework Analyzer)主程序入口
用于分析不同平台的应用程序使用的开发框架
"""

import os
import sys
import click
from pathlib import Path

# 导入内部模块
from src.core.analyzer import AppAnalyzer
from src.utils.logger import setup_logger
from src.utils.config import load_config

# 设置日志
logger = setup_logger("main")

@click.command()
@click.option('--path', '-p', required=True, help='应用程序路径')
@click.option('--platform', '-P', type=click.Choice(['auto', 'windows', 'macos', 'linux', 'android', 'ios', 'harmony']), 
              default='auto', help='应用平台类型')
@click.option('--output', '-o', default='./report', help='报告输出路径')
@click.option('--config', '-c', default='./config/config.yaml', help='配置文件路径')
@click.option('--verbose', '-v', is_flag=True, help='显示详细日志')
def main(path, platform, output, config, verbose):
    """
    应用程序框架分析器 - 分析不同平台应用程序使用的开发框架
    
    详细用法:
      python main.py --path /path/to/application --platform android
    """
    logger.info("应用程序框架分析器启动")
    
    # 检查应用路径
    app_path = Path(path)
    if not app_path.exists():
        logger.error(f"应用路径不存在: {path}")
        sys.exit(1)
    
    # 加载配置文件
    try:
        config_data = load_config(config)
        logger.info(f"已加载配置文件: {config}")
    except Exception as e:
        logger.error(f"加载配置文件失败: {e}")
        sys.exit(1)
    
    # 创建分析器实例
    analyzer = AppAnalyzer(
        app_path=app_path,
        platform=platform,
        output_path=output,
        config=config_data,
        verbose=verbose
    )
    
    # 执行分析
    try:
        result = analyzer.analyze()
        logger.info(f"分析完成，报告已保存至: {output}")
        print(f"\n分析结果摘要:\n{result.summary()}")
    except Exception as e:
        logger.error(f"分析过程中发生错误: {e}")
        if verbose:
            import traceback
            traceback.print_exc()
        sys.exit(1)

if __name__ == "__main__":
    main() 